package d2_file;

import java.io.File;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class FileTest02 {
    public static void main(String[] args) {
        //目标: 掌握File提供的判断文件类型、获取文件信息功能
        //1、创建一个文件对象, 代表一个文件
        File file1 = new File("D:\\javadevelop\\2024班\\02阶段java基础进阶\\陈某总结\\day01总结.md");
        //2、public boolean exists() 判断当前文件对象, 对应的路径是否存在, 存在返回true

        System.out.println(file1.exists());//true

        //3、public boolean isFile() 判断当前文件对象只带的是否是文件, 是文件返回true, 反之false
        //文件 --> 就两类 实物 文件夹
        System.out.println(file1.isFile());//ture

        //4、public boolean isDirectory() 判断当前文件对象指代的是否是文件夹, 是文件夹返回true ,反之false
        System.out.println(file1.isDirectory());//false

        //5、public String getName() 获取文件的名称(包含前后缀)
        System.out.println(file1.getName());//day01总结.md

        //6、public long length() 获取文件的大小, 返回字节个数
        System.out.println(file1.length());//字节个数

        //7、public long lastModified() 获取文件的最后修改时间
        long time = file1.lastModified();//世界标准时间
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss EEE a");
        //将long 类型的时间转换成LocalDataTime对象
        LocalDateTime dataTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
        //使用DataTimeFormatter 对象 dtf将LocalTime 格式化成指定的字符串时间
        String formatDataTime = dataTime.format(dtf);
        System.out.println(formatDataTime);
        //8、public String getPath() 获取创建对象时, 使用路径

        System.out.println(file1.getParent());
        //9、public String getAbsolutPath() 获取创建文件对象时, 使用路径

        System.out.println(file1.getAbsoluteFile());

        // 可以找到真正的相对路径
        File file = new File("");
        System.out.println(file.getAbsolutePath());
    }
}
